//package com.zmn.plat.manager.config;
//
//import com.zmn.plat.manager.utils.MqConsts;
//import org.springframework.amqp.core.Binding;
//import org.springframework.amqp.core.BindingBuilder;
//import org.springframework.amqp.core.Queue;
//import org.springframework.amqp.core.TopicExchange;
//import org.springframework.amqp.rabbit.core.RabbitAdmin;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///**
// * RabbitMQ队列和交换机配置
// * 在消息Producer所在module定义
// * @uthor nowind
// * @since 2018/9/9 14:31
// */
////@Configuration
//public class TopicRabbitConfig {
//
//    @Autowired
//    private RabbitAdmin rabbitAdmin;
//
//
//    //region RabbitMQ队列和交换机配置-系统日志
//
//    @Bean
//    public Queue queueSysLog() {
//        return new Queue(MqConsts.MQ_SYSLOG_QUEUE, true, false, false);
//    }
//
//    @Bean
//    TopicExchange exchangeSysLog() {
//        return new TopicExchange(MqConsts.MQ_SYSLOG_EXCHANGE, true, false);
//    }
//
//    @Bean
//    Binding bindingExchangeSysLog(Queue queueSysLog, TopicExchange exchangeSysLog) {
//        return BindingBuilder.bind(queueSysLog).to(exchangeSysLog).with(MqConsts.MQ_SYSLOG_ROUTINGKEY);
//    }
//
//    //endregion
//
//    //region RabbitMQ队列和交换机配置-文章
//
//    @Bean
//    public Queue queueNews() {
//        return new Queue(MqConsts.MQ_INDEX_NEWS_QUEUE, true, false, false);
//    }
//
//    @Bean
//    TopicExchange exchangeNews() {
//        return new TopicExchange(MqConsts.MQ_INDEX_NEWS_EXCHANGE, true, false);
//    }
//
//    @Bean
//    Binding bindingExchangeNews(Queue queueNews, TopicExchange exchangeNews) {
//        return BindingBuilder.bind(queueNews).to(exchangeNews).with(MqConsts.MQ_INDEX_NEWS_ROUTINGKEY);
//    }
//
//    //endregion
//
//    //region RabbitMQ队列和交换机配置-服务产品
//
//    @Bean
//    public Queue queueSProduct() {
//        return new Queue(MqConsts.MQ_INDEX_SPRODUCT_QUEUE, true, false, false);
//    }
//
//    @Bean
//    TopicExchange exchangeSProduct() {
//        return new TopicExchange(MqConsts.MQ_INDEX_SPRODUCT_EXCHANGE, true, false);
//    }
//
//    @Bean
//    Binding bindingExchangeSProduct(Queue queueSProduct, TopicExchange exchangeSProduct) {
//        return BindingBuilder.bind(queueSProduct).to(exchangeSProduct).with(MqConsts.MQ_INDEX_SPRODUCT_ROUTINGKEY);
//    }
//
//    //endregion
//
//    /**
//     * RabbitMQ队列和交换机配置-测试
//     */
///*    @Bean
//    Binding bindingExchangeMessageTest() {
//
//        //参数列表分别是：1.交换器名称(default.topic 为默认值),2.是否长期有效,3.如果服务器在不再使用时自动删除交换器
//        TopicExchange exchange = new TopicExchange("exchange.zmn.test", true, false);
//        rabbitAdmin.declareExchange(exchange);
//
//        //1.队列名称,2.声明一个持久队列,3.声明一个独立队列,4.如果服务器在不再使用时自动删除队列
//        Queue queue = new Queue("queue.zmn.test", true, false, false);
//        rabbitAdmin.declareQueue(queue);
//
//        //1.queue:绑定的队列,2.exchange:绑定到那个交换器,3.test2.send:绑定的路由名称
//        Binding binding = BindingBuilder.bind(queue).to(exchange).with("routingkey.zmn.test");
//
//        rabbitAdmin.declareBinding(binding);
//        return binding;
//    }*/
//
//
//}
